package com.eol.entity.po.content;

import com.alibaba.fastjson.JSONArray;
import io.swagger.annotations.ApiModel;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Transient;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 课程表
 *
 * @author liulinhui
 * @email 1249055292@qq.com
 * @date 2020-06-10 12:02:22
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("课程表")
public class ZCourse implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @Id
    private String id;

    @ApiModelProperty(value = "课程名字")
    private String name;

    @ApiModelProperty(value = "课程图片")
    @Column(name = "picture")
    private JSONArray picture;

    @ApiModelProperty(value = "课程一级类型")
    private String courseTopType;

    @ApiModelProperty(value = "课程类型")
    private String courseType;

    @ApiModelProperty(value = "标签")
    private String label;

    @ApiModelProperty(value = "课程介绍类型  1：长图  2：文字")
    private Integer desType;

    @ApiModelProperty(value = "课程介绍图片")
    private String desPic;

    @ApiModelProperty(value = "课程介绍文字")
    private String des;

    @ApiModelProperty(value = "导师头像")
    private String teacherPicture;

    @ApiModelProperty(value = "导师")
    private String teacher;

    @ApiModelProperty(value = "导师职位")
    private String teacherJob;

    @ApiModelProperty(value = "导师介绍")
    private String teacherDes;

    @ApiModelProperty(value = "查看次数")
    private Long readCount;

    @ApiModelProperty(value = "打分")
    private BigDecimal score;

    @ApiModelProperty(value = "学习次数")
    private Long learnCount;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "支付方式")
    @Column(name = "pay_type")
    private JSONArray payType;

    @ApiModelProperty(value = "是否免费 1：免费")
    private Integer free;

    @ApiModelProperty(value = "上架时间")
    private Date upTime;

    @ApiModelProperty(value = "下架时间")
    private Date downTime;

    @ApiModelProperty(value = "有效星期  1-7")
    @Column(name = "week_days")
    private JSONArray weekDays;

    @ApiModelProperty(value = "课程生产日期")
    private Date productTime;

    @ApiModelProperty(value = "商户id")
    private String merchantId;

    @ApiModelProperty(value = "价格")
    private BigDecimal price;


    @ApiModelProperty(value = "商户ID List")
    @Transient
    private List<String> merchantIdList;
    @Transient
    private Date startTime;
    @Transient
    private Date endTime;

}
